﻿#!/bin/bash
#author:Castle Moriarty
# date:2025-10-28

## 自动添加ftp用户


ftpudir="/etc/vsftpd/ftpuser"

## 如果没有提供参数，需要报错，并退出脚本
if [ -z "$1" ]
then
  echo "ERROR,请带上用户名字，例如sh $0 username" >&2
  exit 1
fi

## 如果提供的用户对应的配置文件已经存在，意味着要添加的用户已经存在，也要报错
if [ -f $ftpudir/$1 ]
then
  echo "ERROR,用户名已经存在，请重新定义用户" >&2
  exit 1
fi

## 项目名和添加的用户一样
pro=$1
ftp_p=`mkpasswd -s 0 -l 12`

## echo -e 可以用\n换行
echo -e "$pro\n$ftp_p" >> /etc/login.txt
db_load -T -t hash -f /etc/login.txt /etc/vsftpd/vsftpd_login.db
cd $ftpudir
cp add $pro
sed -i "s/aaa/$pro/" $pro //把里面的aaa改为新的项目名字
systemctl restart vsftpd

echo "新用户创建完成，密码为$ftp_p"



<<'COMMENT'
关键知识点总结：
1) 在shell脚本中可以在echo的字符后面增加 >&2来实现错误输出
2) echo -e 支持使用\n换行，\t 制表，而且还可以带上颜色，例如 echo -e "\e[31m这是红色文本\e[0m"
COMMENT